[レポート][社内勉強会] AWS Athenaハンズオン ~ビッグデータじゃなくてもAthenaは使える!~
こんにちは、みかみです。
去る2017/07/01(土)に開催された弊社イベント「Developers.IO 2017」のハンズオンセミナー「G-1 現場で使える Amazon Athena」を、社内で再演していただきました!v
Athena初めて触ったのですが(恥)、Hiveもごく軽い机上の知識しかないですが(恥)、これが思ったよりもかんたん&面白い!
これもひとえに、ハンズオン用にデータやRoleなど、準備していただいたおかげですmm
※文中の画像は全てハンズオン資料からの抜粋です。
今まで「Athena=ビッグデータ→大がかり」なイメージでしたが、くつがえされました(いい意味で!
スモールスタートでお試しできるし、特にログ解析やWeb監視にすごく使えそうだと思いました。
Athena、先日東京リージョンにも来ましたしv
はじめに
Amazon Athenaとは?(何がうれしいの?)
S3にあるファイルにSQLクエリを投げてデータを見ることができる
これまでだったら、いったん DB にロードして(ロードバッチも作って)、だった手間が省けます( RDS( Aurora, Redshift )も EC2 も必要なし!
Athenaを使う手順は?
- Roleを設定(Athenaのフルアクセス権限とS3のファイルの読み書き権限)
- S3にファイルをアップロード(分析対象のファイル)
- Athenaのデータベース&テーブル作成(AWS管理コンソールからGUIで作成可能)
- SQLクエリ流す
※IAMユーザー作成済み(AWSアカウントあり)を前提にしてます。
ローカル環境からJDBCでAthenaにつないで、DDL流して・・・
だと少し敷居が高いですが。。。
AWS管理コンソールからのGUI操作ならすんなり使えました!
ハンズオン
演習1:GUIによるデータベースとテーブルの作成→クエリの実行
AWS管理コンソールにログインして、Athenaのデータベースとテーブルを作ります。
テーブル作成に成功するとフォームにDDLが表示されるので、カスタマイズして直接DDL流すこともできます。
ハンズオンではログイン後の操作から、Athena画面の各タブやフォームの説明もしていただいたので、「何をどうクリックすれば・・・?(BigQuery破産的なことしたら怖いし@@;」な心配もありません!
テーブルができたら、コンソールに表示されている目のアイコンクリックで、すぐにデータが表示されます。(なんかポチポチしてっただけなのにデータ見えた!すごい!@@v
もちろんフォームから自分で書いたクエリを [Run Query] することもできます。
演習2~6:Amazon Athenaを使い倒す
クエリ実行結果に対してさらにクエリを投げたり(検索対象を絞る)、Array や Map などの複雑なデータ型の扱いについて、教えていただきました。
S3に上がってれば、JSONファイルも扱えますv
例えば、APIのレスポンス@JSONをそのままS3に吐き出して、Athenaでクエリ投げて必要なデータだけ取り出す、とかできちゃうわけですね@@v
演習7:ELBのログを探索する
WebサーバにAWSをお使いならば、ELBも使うケースが多いかと思います。
S3にアクセスログを吐き出しておけば、Athenaでテーブルつくって、すぐにログ解析できちゃいます!
例えば、IPごとのリクエスト数確認したり、どのUserAgentが多いのか確認したり、サーバーエラー数確認したり。
ちなみにこのDDL、Apacheアクセスログならそのまま使えるそうです!
他のログでも、フォーマットに合わせたDDL作成すれば、ログファイルS3にアップロードするだけで、解析できちゃいます。
S3だけならお値段もお安く済みますし!v
マーケティング用途はもちろんですが、Web監視などセキュリティ用途にも使えます!
これ、自分的にはすごくいいと思いました><v(データ量にもよるかとは思いますが。。><;
演習:その他
その他、CloudTrailのログ探索や、パフォーマンス改善の方法(パーティションの指定方法)など、とても実践的な内容でした!
アーキテクチャのお話なども聞けたので、自分でチュートリアルやってみるだけとは違い、本当にAthenaの理解が深まりました!
AthenaとSpectrum
個人的に、分かったようでいてよく分からなかったのが、AthenaとSpectrumの違いでした。
「SpectrumはRedshiftとJOINできるらしいけど、どうせAthenaもテーブル作らないといけないのでしょ?(手間かかるし?
何がそんなに違うの?」と。。
実際にAthena使ってみて、理解、です。。。mm
S3にデータが上がってさえいればOK(S3とAthenaさえあればOK)なのが、Athenaの強み?!
ログ解析のためにデータ分析基盤作って・・・だった手間がいらないのですもの><!
逆にSpectrumは、すでにRedshift使ってるシステムの拡張時に活躍しそうですね(Athenaよりアタマも良いらしいですし@@?!
おわりに(まとめ・所感)
- やっぱり、さわってみるとよくわかる!(ハンズオン非常に分かりやすかったですmm
- Athenaはお手軽!(料金は気にしないとですが。。
- Hive知らなくてもAthenaなら使える!(知ってればもっと使える・・・?
- 慣れるまではAWS管理コンソール活用すべし
- AWS SDK(boto3とか)でAthenaアクセスとかもしてみたいなぁv
- 新機能 AWSCLIから Amazon Athena のクエリを実行する | Developers.IO
- AWS SDK for Python (Boto3) で Amazon Athena にクエリする | Developers.IO
弊社イベント「Developers.IO 2017」東京での開催は終了してしまいましたが、各セッションの資料は絶賛公開中です!
また、今後、東京以外の地域でも開催予定です!(セッションスケジュールは変更の可能性があります)
そして、残念ながら今回ご都合がつかなかった方も、来年の Developers.IO にはぜひ足をお運びいただけるとうれしいです!